{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Introduction\n",
    "-----\n",
    "\n",
    "In this assignment you will recursively estimate the position of a vehicle along a trajectory using available measurements and a motion model. \n",
    "\n",
    "The vehicle is equipped with a very simple type of LIDAR sensor, which returns range and bearing measurements corresponding to individual landmarks in the environment. The global positions of the landmarks are assumed to be known beforehand. We will also assume known data association, that is, which measurment belong to which landmark.\n",
    "\n",
    "## Motion and Measurement Models\n",
    "-----\n",
    "\n",
    "### Motion Model\n",
    "\n",
    "The vehicle motion model recieves linear and angular velocity odometry readings as inputs, and outputs the state (i.e., the 2D pose) of the vehicle:\n",
    "\n",
    "\\begin{align}\n",
    "\\mathbf{x}_{k} &= \\mathbf{x}_{k-1} + T\n",
    "\\begin{bmatrix}\n",
    "\\cos\\theta_{k-1} &0 \\\\\n",
    "\\sin\\theta_{k-1} &0 \\\\\n",
    "0 &1\n",
    "\\end{bmatrix}\n",
    "\\left(\n",
    "\\begin{bmatrix}\n",
    "v_k \\\\\n",
    "\\omega_k\n",
    "\\end{bmatrix}\n",
    "+ \\mathbf{w}_k\n",
    "\\right)\n",
    "\\, , \\, \\, \\, \\, \\, \\mathbf{w}_k = \\mathcal{N}\\left(\\mathbf{0}, \\mathbf{Q}\\right)\n",
    "\\end{align}\n",
    "\n",
    "- $\\mathbf{x}_k = \\left[ x \\, y \\, \\theta \\right]^T$ is the current 2D pose of the vehicle\n",
    "- $v_k$ and $\\omega_k$ are the linear and angular velocity odometry readings, which we use as inputs to the model\n",
    "\n",
    "The process noise $\\mathbf{w}_k$ has a (zero mean) normal distribution with a constant covariance $\\mathbf{Q}$.\n",
    "\n",
    "### Measurement Model\n",
    "\n",
    "The measurement model relates the current pose of the vehicle to the LIDAR range and bearing measurements $\\mathbf{y}^l_k = \\left[r \\, \\phi \\right]^T$.\n",
    "\n",
    "\\begin{align}\n",
    "\\mathbf{y}^l_k =\n",
    "\\begin{bmatrix}\n",
    "\\sqrt{(x_l - x_k - d\\cos\\theta_{k})^2 + (y_l - y_k - d\\sin\\theta_{k})^2} \\\\\n",
    "atan2\\left(y_l - y_k - d\\sin\\theta_{k},x_l - x_k - d\\cos\\theta_{k}\\right) - \\theta_k\n",
    "\\end{bmatrix}\n",
    "+\n",
    "\\mathbf{n}^l_k\n",
    "\\, , \\, \\, \\, \\, \\, \\mathbf{n}^l_k = \\mathcal{N}\\left(\\mathbf{0}, \\mathbf{R}\\right)\n",
    "\\end{align}\n",
    "\n",
    "- $x_l$ and $y_l$ are the ground truth coordinates of the landmark $l$\n",
    "- $x_k$ and $y_k$ and $\\theta_{k}$ represent the current pose of the vehicle\n",
    "- $d$ is the known distance between robot center and laser rangefinder (LIDAR)\n",
    "\n",
    "The landmark measurement noise $\\mathbf{n}^l_k$ has a (zero mean) normal distribution with a constant covariance $\\mathbf{R}$.\n",
    "\n",
    "## Getting Started\n",
    "-----\n",
    "\n",
    "Since the models above are nonlinear, we recommend using the extended Kalman filter (EKF) as the state estimator.\n",
    "Specifically, you will need to provide code implementing the following steps:\n",
    "- the prediction step, which uses odometry measurements and the motion model to produce a state and covariance estimate at a given timestep, and\n",
    "- the correction step, which uses the range and bearing measurements provided by the LIDAR to correct the pose and pose covariance estimates\n",
    "\n",
    "### Unpack the Data\n",
    "First, let's unpack the available data:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from math import cos, sin, sqrt, atan2\n",
    "import pickle\n",
    "import numpy as np\n",
    "from numpy.linalg import inv\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "with open('data/data.pickle', 'rb') as f:\n",
    "    data = pickle.load(f)\n",
    "\n",
    "t = data['t']  # timestamps [s]\n",
    "\n",
    "x_init  = data['x_init'] # initial x position [m]\n",
    "y_init  = data['y_init'] # initial y position [m]\n",
    "th_init = data['th_init'] # initial theta position [rad]\n",
    "\n",
    "# input signal\n",
    "v  = data['v']  # translational velocity input [m/s]\n",
    "om = data['om']  # rotational velocity input [rad/s]\n",
    "\n",
    "# bearing and range measurements, LIDAR constants\n",
    "b = data['b']  # bearing to each landmarks center in the frame attached to the laser [rad]\n",
    "r = data['r']  # range measurements [m]\n",
    "l = data['l']  # x,y positions of landmarks [m]\n",
    "d = data['d']  # distance between robot center and laser rangefinder [m]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Note that distance from the LIDAR frame to the robot center is provided and loaded as an array into the `d` variable.\n",
    "\n",
    "### Ground Truth\n",
    "If available, it is useful to plot the ground truth position and orientation before starting the assignment.\n",
    "\n",
    "<table><tr>\n",
    "<td> <img src=\"data/gtruth.png\" alt=\"Ground Truth\" width=\"350\"/> </td>\n",
    "<td> <img src=\"data/gtruth2.png\" alt=\"Ground Truth\" width=\"350\"/> </td>\n",
    "</tr></table>\n",
    "\n",
    "Notice that the orientation values are wrapped to the $\\left[-\\pi,\\pi\\right]$ range in radians."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Initializing Parameters\n",
    "\n",
    "Now that our data is loaded, we can begin getting things set up for our solver. One of the\n",
    "most important aspects of designing a filter is determining the input and measurement noise covariance matrices, as well as the initial state and covariance values. We set the values here:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [],
   "source": [
    "v_var = 1  # translation velocity variance  \n",
    "om_var = 5  # rotational velocity variance \n",
    "r_var = 0.01  # range measurements variance\n",
    "b_var = 10  # bearing measurement variance\n",
    "\n",
    "Q_km = np.diag([v_var, om_var]) # input noise covariance \n",
    "cov_y = np.diag([r_var, b_var])  # measurement noise covariance \n",
    "\n",
    "x_est = np.zeros([len(v), 3])  # estimated states, x, y, and theta\n",
    "P_est = np.zeros([len(v), 3, 3])  # state covariance matrices\n",
    "\n",
    "x_est[0] = np.array([x_init, y_init, th_init]) # initial state\n",
    "P_est[0] = np.diag([1, 1, 0.1]) # initial state covariance\n",
    "\n",
    "I = np.eye(3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Remember:** that it is neccessary to tune the measurement noise variances `r_var`, `b_var` in order for the filter to perform well!\n",
    "\n",
    "In order for the orientation estimates to coincide with the bearing measurements, it is also neccessary to wrap all estimated $\\theta$ values to the $(-\\pi , \\pi]$ range."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Wraps angle to (-pi,pi] range\n",
    "def wraptopi(x):\n",
    "    return (x + np.pi) % (2 * np.pi) - np.pi\n",
    "    '''\n",
    "    if x > np.pi:\n",
    "        x = x - (np.floor(x / (2 * np.pi)) + 1) * 2 * np.pi\n",
    "    elif x < -np.pi:\n",
    "        x = x + (np.floor(x / (-2 * np.pi)) + 1) * 2 * np.pi\n",
    "    return x\n",
    "    '''"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "## Correction Step\n",
    "-----\n",
    "First, let's implement the measurement update function, which takes an available landmark measurement $l$ and updates the current state estimate $\\mathbf{\\check{x}}_k$.\n",
    "For each landmark measurement received at a given timestep $k$, you should implement the following steps:\n",
    "\n",
    "- Compute the measurement model Jacobians at $\\mathbf{\\check{x}}_{k}$\n",
    "\\begin{align}\n",
    "\\mathbf{y}^l_k = &\\mathbf{h}(\\mathbf{x}_{k}, \\mathbf{n}^l_k) \\\\\\\\\n",
    "\\mathbf{H}_{k} = \\frac{\\partial \\mathbf{h}}{\\partial \\mathbf{x}_{k}}\\bigg|_{\\mathbf{\\check{x}}_{k},0}& \\, , \\, \\, \\, \\,\n",
    "\\mathbf{M}_{k} = \\frac{\\partial \\mathbf{h}}{\\partial \\mathbf{n}_{k}}\\bigg|_{\\mathbf{\\check{x}}_{k},0} \\, .\n",
    "\\end{align}\n",
    "- Compute the Kalman Gain\n",
    "\\begin{align}\n",
    "\\mathbf{K}_k &= \\mathbf{\\check{P}}_k \\mathbf{H}_k^T \\left(\\mathbf{H}_k \\mathbf{\\check{P}}_k \\mathbf{H}_k^T + \\mathbf{M}_k \\mathbf{R}_k \\mathbf{M}_k^T \\right)^{-1} \n",
    "\\end{align}\n",
    "- Correct the predicted state\n",
    "\\begin{align}\n",
    "\\mathbf{\\check{y}}^l_k &= \\mathbf{h}\\left(\\mathbf{\\check{x}}_k, \\mathbf{0}\\right) \\\\\n",
    "\\mathbf{\\hat{x}}_k &= \\mathbf{\\check{x}}_k + \\mathbf{K}_k \\left(\\mathbf{y}^l_k - \\mathbf{\\check{y}}^l_k\\right)\n",
    "\\end{align}\n",
    "- Correct the covariance\n",
    "\\begin{align}\n",
    "\\mathbf{\\hat{P}}_k &= \\left(\\mathbf{I} - \\mathbf{K}_k \\mathbf{H}_k \\right)\\mathbf{\\check{P}}_k\n",
    "\\end{align}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [],
   "source": [
    "def measurement_update(lk, rk, bk, P_check, x_check):\n",
    "    x_check[2] = wraptopi(x_check[2])\n",
    "    x = x_check\n",
    "    P = P_check\n",
    "    x_k = x[0]\n",
    "    y_k = x[1]\n",
    "    theta_k = x[2]\n",
    "    x_l = lk[0]\n",
    "    y_l = lk[1]\n",
    "    \n",
    "    dx = x_l - x_k - d * cos(theta_k)\n",
    "    dy = y_l - y_k - d * sin(theta_k)\n",
    "    r = sqrt(dx**2 + dy**2)\n",
    "    phi = atan2(dy, dx) - theta_k\n",
    "    y = np.vstack([r, wraptopi(phi)])\n",
    "    y_meas = np.vstack([rk, wraptopi(bk)])\n",
    "    \n",
    "    # 1. Compute measurement Jacobian\n",
    "    M = np.eye(2)\n",
    "    H = np.ones((2, 3))\n",
    "    H[0, 0] = -dx / r\n",
    "    H[0, 1] = -dy / r\n",
    "    H[0, 2] = d * (dx * sin(theta_k) - dy * cos(theta_k)) / r\n",
    "    H[1, 0] = dy / r**2\n",
    "    H[1, 1] = -dx / r**2\n",
    "    H[1, 2] = -d * (dy * sin(theta_k) + dx * cos(theta_k)) / r**2\n",
    "\n",
    "    # 2. Compute Kalman Gain\n",
    "    K = P @ H.T @ inv(H @ P @ H.T + M @ cov_y @ M.T)\n",
    "\n",
    "    # 3. Correct predicted state (remember to wrap the angles to [-pi,pi])\n",
    "    x_check = x + K @ (y_meas - y)\n",
    "    x_check[2] = wraptopi(x_check[2])\n",
    "\n",
    "    # 4. Correct covariance\n",
    "    P_check = (I - K @ H) @ P\n",
    "\n",
    "    return x_check, P_check\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Prediction Step\n",
    "-----\n",
    "Now, implement the main filter loop, defining the prediction step of the EKF using the motion model provided:\n",
    "\n",
    "\\begin{align}\n",
    "\\mathbf{\\check{x}}_k &= \\mathbf{f}\\left(\\mathbf{\\hat{x}}_{k-1}, \\mathbf{u}_{k-1}, \\mathbf{0} \\right) \\\\\n",
    "\\mathbf{\\check{P}}_k &= \\mathbf{F}_{k-1}\\mathbf{\\hat{P}}_{k-1}\\mathbf{F}_{k-1}^T + \\mathbf{L}_{k-1}\\mathbf{Q}_{k-1}\\mathbf{L}_{k-1}^T \\, .\n",
    "\\end{align}\n",
    "\n",
    "Where\n",
    "\n",
    "\\begin{align}\n",
    "\\mathbf{F}_{k-1} = \\frac{\\partial \\mathbf{f}}{\\partial \\mathbf{x}_{k-1}}\\bigg|_{\\mathbf{\\hat{x}}_{k-1},\\mathbf{u}_{k},0}  \\, , \\, \\, \\, \\,\n",
    "\\mathbf{L}_{k-1} = \\frac{\\partial \\mathbf{f}}{\\partial \\mathbf{w}_{k}}\\bigg|_{\\mathbf{\\hat{x}}_{k-1},\\mathbf{u}_{k},0} \\, .\n",
    "\\end{align}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [],
   "source": [
    "#### 5. Main Filter Loop #######################################################################\n",
    "x_check = x_est[0, :].reshape(3,1)\n",
    "P_check = P_est[0]\n",
    "for k in range(1, len(t)):  # start at 1 because we've set the initial prediciton\n",
    "\n",
    "    delta_t = t[k] - t[k - 1]  # time step (difference between timestamps)\n",
    "    x_check[2] = wraptopi(x_check[2])\n",
    "    theta = x_check[2]\n",
    "\n",
    "    # 1. Update state with odometry readings (remember to wrap the angles to [-pi,pi])\n",
    "    x_check[0] += v[k-1] * cos(theta) * delta_t\n",
    "    x_check[1] += v[k-1] * sin(theta) * delta_t\n",
    "    x_check[2] += om[k-1] * delta_t\n",
    "    x_check[2] = wraptopi(x_check[2])\n",
    "\n",
    "    # 2. Motion model jacobian with respect to last state\n",
    "    F_km = np.array([[1, 0, -v[k-1] * sin(theta) * delta_t],\n",
    "                     [0, 1, v[k-1] * cos(theta) * delta_t],\n",
    "                     [0, 0, 1]])\n",
    "\n",
    "    # 3. Motion model jacobian with respect to noise\n",
    "    L_km = np.array([[cos(theta) * delta_t, 0],\n",
    "                     [sin(theta) * delta_t, 0],\n",
    "                     [0, delta_t]])\n",
    "\n",
    "    # 4. Propagate uncertainty\n",
    "    P_check = F_km @ P_check @ F_km.T + L_km @ Q_km @ L_km.T\n",
    "    \n",
    "\n",
    "    # 5. Update state estimate using available landmark measurements\n",
    "    for i in range(len(r[k])):\n",
    "        x_check, P_check = measurement_update(l[i], r[k, i], b[k, i], P_check, x_check)\n",
    "\n",
    "    # Set final state predictions for timestep\n",
    "    x_est[k, 0] = x_check[0]\n",
    "    x_est[k, 1] = x_check[1]\n",
    "    x_est[k, 2] = x_check[2]\n",
    "    P_est[k, :, :] = P_check"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's plot the resulting state estimates:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "e_fig = plt.figure()\n",
    "ax = e_fig.add_subplot(111)\n",
    "ax.plot(x_est[:, 0], x_est[:, 1])\n",
    "ax.set_xlabel('x [m]')\n",
    "ax.set_ylabel('y [m]')\n",
    "ax.set_title('Estimated trajectory')\n",
    "plt.show()\n",
    "\n",
    "e_fig = plt.figure()\n",
    "ax = e_fig.add_subplot(111)\n",
    "ax.plot(t[:], x_est[:, 2])\n",
    "ax.set_xlabel('Time [s]')\n",
    "ax.set_ylabel('theta [rad]')\n",
    "ax.set_title('Estimated trajectory')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Are you satisfied wth your results? The resulting trajectory should closely resemble the ground truth, with minor \"jumps\" in the orientation estimate due to angle wrapping. If this is the case, run the code below to produce your solution file."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [],
   "source": [
    "with open('submission.pkl', 'wb') as f:\n",
    "    pickle.dump(x_est, f, pickle.HIGHEST_PROTOCOL)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
